Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [c++]eseguire solo da launcher
Forum - C/C++ - [c++]eseguire solo da launcher

Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo
Avatar
mitor (Normal User)
Pro


Messaggi: 73
Iscritto: 01/08/2007

Segnala al moderatore
Postato alle 23:59
Sabato, 02/01/2010
Questo topic è stato chiuso dal moderatore

[Sistema Operativo: Windows]

Buonasera a tutti, vi spiego un'attimo la situazione.
Ho un file con interfaccia grafica, vorrei che un secondo file .exe sia eseguibile solamente se avviato con il mio programma.

Quindi se esegui il file .exe esterno esso non si avvii...mentre se eseguito con il "Launcher" esso funzioni normalmente...

ci sono molti programmi che funzionano con questa logica, vorrei capirne il funzionamento...forse vanno a modificare qualche parte dell'eseguibile e se avviati con il launcher la rimettono a posto con una specie di inject?

sono accettate ipotesi e consigli.

Grazie a tutti e buonaserata :D

PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 13:00
Domenica, 03/01/2010

senza andare a complicarsi la vita, basta creare un file da qualche parte in modo che il launcher se non lo trova esce immediatamente, se lo trova lo cancella. Così sei sicuro che a farlo partire sia stato il tuo prog.

Oppure puoi usare una chiave di registro con lo stesso sistema del file.

Oppure puoi far creare una Pipe dal tuo launcher e controllarne l'esistenza nell'altro prog.

Oppure puoi spostare tutto il codice di check fuori dal launcher, facendo si che il programma cerchi tra i processi il launcher, raggiunga l'eseguibile, ci faccia un CRC per assicurarsi che sia lui, e solo in quel caso non terminare la propria esecuzione.

Oppure puoi, attraversi WMI chiedere il ParentProcess del processo e controllare, nel modo detto sopra, se è il launcher.

... Sicuramente c'è altro ma non mi viene in mente...


PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:34
Domenica, 03/01/2010
Fai eseguire il progrmma con un argomento scelto precedentemente. Il programma che si avvierà controlla se c'è quell'rgomento, altrimenti si chiude.

PM
Avatar
mitor (Normal User)
Pro


Messaggi: 73
Iscritto: 01/08/2007

Segnala al moderatore
Postato alle 14:18
Domenica, 03/01/2010
Grazie per le risposte, però purtroppo...colpa mia ovviamente mi sono dimenticato di inserire un particolare...il file che dev'essere avviato solo dal mio launcher, non è un file di mia creazione...e quindi non ne possiedo i sorgenti..se avessi avuto i sorgenti sarebbe stato abbastanza semplice il discorso..però purtroppo devo per forza complicarmi la vita...quindi sarebbe meglio se ad'esempio..manualmente modifico il file di cui non ho i sorgenti...e poi con il launcher riesco in qualche modo a iniettarli il codice rimosso per avviarlo correttamente...una cosa del genere mi servirebbe...cosi che se una persona avvia il programma senza launcher, esso non riesce a partire..mentre se si usa il launcher esso parte normalmente...

aspetto altre risposte :D

faccio un'esempio più banale..
un pò di tempo fà giocherellavo con un hex editor e ho modificato un carattere all'interno di un programma, ho salvato il tutto e ovviamente il programma non partiva più..mentre reinserendo il carattere predefinito il tutto funzionava correttamente..forse questo tipo di logica potrebbe risolvere il mio problema..se fosse possibile.. :-|

Ultima modifica effettuata da mitor il 03/01/2010 alle 14:21
PM
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 15:39
Domenica, 03/01/2010
la tua non è un'idea malvagia, ma potresti generare dei falsi positivi con alcuni programmi antivirus!

Il modo più corretto è intervenire non sul launcher bensì sul programma di destinazione, come ha suggerito HeDo.

Un metodo che non genera falsi positivi nei programmi antivirus potrebbe essere quello di generare a runtime (tramite il launcher) un file di configurazione indispensabile per il programma, e poi cancellarlo alla fine. Così il programma non partirà se non trova quel file, ma per trovare il file giusto da manipolare devi fare vari esperimenti con il programma di destinazione. Sconsiglio di manipolare i file .dll perchè essendo anch'essi codici eseguibili, sono soggetti al monitoraggio dei programmi antivirus.

PM
Avatar
mitor (Normal User)
Pro


Messaggi: 73
Iscritto: 01/08/2007

Segnala al moderatore
Postato alle 15:50
Domenica, 03/01/2010
Testo quotato

Postato originariamente da TheKaneB:

la tua non è un'idea malvagia, ma potresti generare dei falsi positivi con alcuni programmi antivirus!

Il modo più corretto è intervenire non sul launcher bensì sul programma di destinazione, come ha suggerito HeDo.

Un metodo che non genera falsi positivi nei programmi antivirus potrebbe essere quello di generare a runtime (tramite il launcher) un file di configurazione indispensabile per il programma, e poi cancellarlo alla fine. Così il programma non partirà se non trova quel file, ma per trovare il file giusto da manipolare devi fare vari esperimenti con il programma di destinazione. Sconsiglio di manipolare i file .dll perchè essendo anch'essi codici eseguibili, sono soggetti al monitoraggio dei programmi antivirus.


si penso di aver capito cosa intendi, prima di tutto ringrazio tutti per l'aiuto che mi state fornendo, come seconda cosa come ho già detto non ho i sorgenti del file che deve funzionare solo con il launcher.

comunque l'idea della modifica HEX è una buona idea, solo che non ho idea di come metterla in pratica..mi basterebbe modificare il primo carattere per sballare tutto il programma, il programma diventerebbe inavviabile...e questo posso farlo con un qualsiasi hex editor..ma per cambiare lo stesso carattere con quello originale tramite c++ come posso muovermi? non credo che l'antivirus lo rilevi come minaccia:D anche perchè quando si prova ad avviarlo non succede nulla :k:

ora la domanda che risolverebbe il mio problema è:
come posso tramite c++ a modificare un file .exe in modalita HEX?
però ora che ci penso, modificandolo basterebbe avviarlo con il launcher e fare una copia del file per avere la versione funzionante...

EDIT:
la soluzione forse più efficace sarebbe modificare in qualche modo il file di destinazione e renderlo utilizzabile soltanto con il launcher in modo che pratichi una specie di modifica "Momentanea" che una volta chiuso torni a non funzionare più

come argomento possibile mi viene in mente la tecnica dell'inject di una dll, che si usa ahime anche per i trojan e programmi virus..è una tecnica che potrebbe tornarmi utile per una buona causa, ma solo che andrei solo ad aggiungere codice da eseguire e basta...non risolverebbe il problema
aspetto altre risposte!

Ultima modifica effettuata da mitor il 03/01/2010 alle 15:58
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 19:03
Domenica, 03/01/2010

prima di darti una risposta che calza a pennello sul tuo problema, potresti fornire altre informazioni sul programma al quale vuoi applicare tutto questo e soprattutto a che scopo.

PM
Avatar
mitor (Normal User)
Pro


Messaggi: 73
Iscritto: 01/08/2007

Segnala al moderatore
Postato alle 19:44
Domenica, 03/01/2010
Testo quotato

Postato originariamente da HeDo:


prima di darti una risposta che calza a pennello sul tuo problema, potresti fornire altre informazioni sul programma al quale vuoi applicare tutto questo e soprattutto a che scopo.


Certamente, essendo che sto acquistando un server dedicato per l'host di un gioco online, ho provveduto a scrivere per ora una bozza di antihack in game, che sarebbe integrato nel launcher con un sistema di update obbligatorio, quindi avrei bisogno di aprire il gioco solo con il launcher per obbligare ad utilizzare l'anticheat e l'update da me scritto

solamente che sto trovando serie difficoltà in questa operazione, cioè obbligare l'utente ad utilizzare il launcher e non il gioco stesso...cosi il launcher controlla aggiornamenti e avvia il gioco e mentre il gioco è avviato controlla sul sistema se ci sono cheat (Cheat Engine ecc..) o trainer in'uso e li blocca :k:

quindi il file di destinazione è un gioco :D

Aspetto risposte.

Ultima modifica effettuata da mitor il 03/01/2010 alle 20:03
PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:01
Domenica, 03/01/2010
Testo quotato

Postato originariamente da mitor:

Testo quotato

Postato originariamente da HeDo:


prima di darti una risposta che calza a pennello sul tuo problema, potresti fornire altre informazioni sul programma al quale vuoi applicare tutto questo e soprattutto a che scopo.


Certamente, essendo che sto acquistando un server dedicato per l'host di un gioco online, ho provveduto a scrivere per ora una bozza di antihack in game, che sarebbe integrato nel launcher con un sistema di update obbligatorio, quindi avrei bisogno di aprire il gioco solo con il launcher per obbligare ad utilizzare l'anticheat e l'update da me scritto

quindi il file di destinazione è un gioco :D

Aspetto risposte.



Inserisci il binario del gioco nel programma e lo richiami quando l'avvii. Alla chiusura cancelli il file precedentemente creato.:k:

PM
Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo